package com.mida.app.report.vo.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("登记预约列表查询返回体-包含检查服务实例")
public class RegistrationListCompleteInfoVo implements Serializable {

   // @ApiModelProperty(name = "patientInfo", value = "患者信息", dataType = "PatientInfo")
    private PatientPageInfoVo patientPageInfoVo;

    @ApiModelProperty(name = "patientInfo", value = "患者信息", dataType = "PatientInfo")
    private ExamsInfoVo examsInfoVo;

    @ApiModelProperty(name = "reqeustSoid", value = "申请单soid", dataType = "String")
    private String requestSoid;


    /**
     * enconterSoid
     */
    @ApiModelProperty(name = "enconterSoid", value = "enconterSoid", dataType = "String")
    private String enconterSoid;


    /**
     * 就诊卡
     */
    @ApiModelProperty(name = "clinicCardNo", value = "就诊卡", dataType = "String")
    private String clinicCardNo;

    /**
     * 就诊卡类型
     */
    @ApiModelProperty(name = "clinicCardType", value = "就诊卡类型", dataType = "String", example = "")
    private String clinicCardType;


    @ApiModelProperty(name = "requisitionId", value = "申请单号", dataType = "String")
    private String requisitionId;


    @ApiModelProperty(name = "reqeustStatus", value = "申请单状态", dataType = "已开立|部分已登记|部分已预约|未完成|已完成")
    private String requestStatus;

    @ApiModelProperty(name = "reqeustTime", value = "申请单开立时间", dataType = "String")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date requestTime;

    @ApiModelProperty(name = "reqeustLifeCycleTime", value = "申请单生命周期最新时间", dataType = "String")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date requestLifeCycleTime;

    @ApiModelProperty(name = "reqeustLifeCycleTimeType", value = "申请单生命周期最新时间类型", dataType = "String")
    private String requestLifeCycleTimeType;

    /**
     * 登记单soid
     */
    @ApiModelProperty(name = "registerSoid", value = "登记单soid", dataType = "String")
    private String registerSoid;

    /**
     * 紧急度标识
     */
    @ApiModelProperty(name = "emergencySign", value = "紧急度标识", dataType = "String")
    private String emergencySign;

    /**
     * 预约单soid
     */
    @ApiModelProperty(name = "bookingSoid", value = "预约单soid", dataType = "String")
    private String bookingSoid;


    /**
     * 手工登记标志
     */
    @ApiModelProperty(name = "manualSign", value = "手工登记标志", dataType = "String")
    private String manualSign;


//    public static RegistrationListCompleteInfoVo buildVo() {
//        return RegistrationListCompleteInfoVo.builder()
//                .patientPageInfoVo(PatientPageInfoVo.buildVo())
//                .examsInfoVo(ExamsInfoVo.buildVo())
//                .registerSoid("121213")
//                .reqeustStatus("14")
//                .bookingSoid("4545")
//                .reqeustSoid("120210513002")
//                .requisitionId("1")
//                .build();
//    }

}
